﻿using System.Collections.Generic;
using UnityEngine;

namespace FastDev
{
    public interface IGoapAgent
    {
        GoapAction CurAction { get; set; }
        GoapAction Goal { get; }
        GoapState GoapState { get; }
        GameObject GameObject { get; }

        void StartPlan();
        void OnStartPlanSuccess(Queue<GoapAction> queueGoapActions);

        void OnActionStart(GoapAction goapAction);
        void OnActionUpdate(GoapAction goapAction);
        void OnActionDone(GoapAction goapAction);
        void OnActionFailed(GoapAction goapAction);
        void OnPlanFailed(string actionName);
        void OnPlanDone();
    }
}
